#!/bin/bash

# Alfred 工作流打包脚本
# 将当前目录的文件打包为 .alfredworkflow 文件

WORKFLOW_NAME="iTerm-Finder-Plugin"
OUTPUT_FILE="${WORKFLOW_NAME}.alfredworkflow"

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${YELLOW}开始构建 Alfred 工作流...${NC}"

# 检查必要文件是否存在
if [ ! -f "info.plist" ]; then
    echo -e "${RED}错误: 找不到 info.plist 文件${NC}"
    exit 1
fi

# 创建临时目录
TEMP_DIR=$(mktemp -d)
echo "创建临时目录: $TEMP_DIR"

# 复制必要文件到临时目录
echo "复制工作流文件..."
cp info.plist "$TEMP_DIR/"
cp iterm_to_finder.sh "$TEMP_DIR/" 2>/dev/null || echo "警告: iterm_to_finder.sh 不存在"
cp finder_to_iterm.sh "$TEMP_DIR/" 2>/dev/null || echo "警告: finder_to_iterm.sh 不存在"

# 设置脚本执行权限
chmod +x "$TEMP_DIR"/*.sh 2>/dev/null

# 进入临时目录并创建 zip 文件
cd "$TEMP_DIR"
echo "打包文件..."

# 创建 zip 文件（Alfred 工作流实际上就是 zip 文件）
# 注意：不要包含根目录，直接打包文件内容
zip -r "$OUTPUT_FILE" * -x "*.DS_Store"

# 移动生成的文件到原目录
mv "$OUTPUT_FILE" "$OLDPWD/"

# 返回原目录
cd "$OLDPWD"

# 清理临时目录
rm -rf "$TEMP_DIR"

# 检查文件是否成功创建
if [ -f "$OUTPUT_FILE" ]; then
    echo -e "${GREEN}✅ 成功创建 Alfred 工作流: $OUTPUT_FILE${NC}"
    echo -e "${GREEN}文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)${NC}"
    echo ""
    echo -e "${YELLOW}安装方法:${NC}"
    echo "1. 双击 $OUTPUT_FILE 文件"
    echo "2. Alfred 会自动导入工作流"
    echo "3. 开始使用 'if' 和 'fi' 命令"
    echo ""
    echo -e "${YELLOW}使用方法:${NC}"
    echo "• if - 在 Finder 中打开当前 iTerm 路径"
    echo "• fi - 在 iTerm 中进入当前 Finder 路径"
else
    echo -e "${RED}❌ 创建工作流失败${NC}"
    exit 1
fi